/**
 *
 */
package com.zhuoyue.elmt.entity;

import com.eit.eitsite.common.config.Global;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.eit.eitsite.common.persistence.DataEntity;

/**
 * 电梯故障报告Entity
 *
 * @author chenhao
 * @version 2016-09-07
 */
public class FailureReport extends DataEntity<FailureReport> {

    private static final long serialVersionUID = 1L;
    private String formId;        // 故障报告单ID
    private String failureNo;        // 故障报告单编号
    private String maintenUnitCode;        // 维保单位代码
    private String maintenanceStaff;        // 维保人员
    private String useUnitCode;        // 使用单位代码
    private String internalCode;        // 单位内部编号
    private String safetyOfficer;        // 安全管理人员
    private String deviceCode;        // 设备注册代码
    private String deviceArea;        // 设备所在区域
    private String deviceAddr;        // 设备所在地点
    private String longitude;        // 经度
    private String latitude;        // 纬度
    private Date reportTime;        // 故障报告时间
    private Date arrivalTime;        // 到达时间
    private Date completionTime;        // 完成时间
    private String trappedPeople;        // 是否困人
    private String trappedTime;        // 困人时间（分钟）
    private String outDifficulty;        // 脱困情况
    private String trappedNumber;        // 被困人数
    private String failureReportContent;        // 故障报告内容
    private String actualFaultCondition;        // 故障实际情况
    private String failureStatus;        // 故障状态
    private String failureStatusRemark;        // 故障状态补充说明
    private String failureReason;        // 故障原因
    private String processStatus;        // 处理状态
    private String processStatusRemark;        // 故障状态补充说明
    private String status;        // 状态
    private String createdBy;        // 创建人
    private Date creationDate;        // 创建时间
    private String lastUpdateBy;        // 更新人
    private Date lastUpdateDate;        // 更新时间
    private String remark;        // 备注
    private String sourceNo; // 来源编号
    private String sourceType; // 来源
    private String maintenUnitName;   //维保单位名称

    private String useUnitName;   //使用单位名称

    private String maintenanceStaff1; // 维保人员1
    private String maintenanceStaff2;  // 维保人员2
    private String maintenanceStaff1Photo;  // 维保人员1签名地址
    private String maintenanceStaff2Photo;  // 维保人员2签名地址
    private String safetyOfficerPhoto; // 管理人员签名地址

    private String maintenanceStaff1Name; // 维保人员1姓名
    private String maintenanceStaff2Name;  // 维保人员2姓名

    private List<MaintenanceStaff> staffList; // 维保人员列表

    private String failureDesc;
    private String failureDeal;

    private List failureStatusList;
    private List processStatusList;

    private String dbName = Global.getConfig("jdbc.type");

    public FailureReport() {
        super();
    }

    public FailureReport(String id) {
        super(id);
    }

    @Length(min = 1, max = 20, message = "故障报告单ID长度必须介于 1 和 20 之间")
    public String getFormId() {
        return formId;
    }

    public void setFormId(String formId) {
        this.formId = formId;
    }

    public String getMaintenUnitName() {
        return maintenUnitName;
    }

    public void setMaintenUnitName(String maintenUnitName) {
        this.maintenUnitName = maintenUnitName;
    }

    @Length(min = 1, max = 20, message = "故障报告单编号长度必须介于 1 和 20 之间")
    public String getFailureNo() {
        return failureNo;
    }

    public void setFailureNo(String failureNo) {
        this.failureNo = failureNo;
    }

    @Length(min = 0, max = 20, message = "维保单位代码长度必须介于 0 和 20 之间")
    public String getMaintenUnitCode() {
        return maintenUnitCode;
    }

    public void setMaintenUnitCode(String maintenUnitCode) {
        this.maintenUnitCode = maintenUnitCode;
    }

    @Length(min = 0, max = 20, message = "维保人员长度必须介于 0 和 20 之间")
    public String getMaintenanceStaff() {
        return maintenanceStaff;
    }

    public void setMaintenanceStaff(String maintenanceStaff) {
        this.maintenanceStaff = maintenanceStaff;
    }

    @Length(min = 0, max = 20, message = "使用单位代码长度必须介于 0 和 20 之间")
    public String getUseUnitCode() {
        return useUnitCode;
    }

    public void setUseUnitCode(String useUnitCode) {
        this.useUnitCode = useUnitCode;
    }

    @Length(min = 0, max = 20, message = "单位内部编号长度必须介于 0 和 20 之间")
    public String getInternalCode() {
        return internalCode;
    }

    public void setInternalCode(String internalCode) {
        this.internalCode = internalCode;
    }

    @Length(min = 0, max = 20, message = "安全管理人员长度必须介于 0 和 20 之间")
    public String getSafetyOfficer() {
        return safetyOfficer;
    }

    public void setSafetyOfficer(String safetyOfficer) {
        this.safetyOfficer = safetyOfficer;
    }

    @Length(min = 1, max = 30, message = "设备注册代码长度必须介于 1 和 20 之间")
    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    @Length(min = 0, max = 10, message = "设备所在区域长度必须介于 0 和 10 之间")
    public String getDeviceArea() {
        return deviceArea;
    }

    public void setDeviceArea(String deviceArea) {
        this.deviceArea = deviceArea;
    }

    @Length(min = 0, max = 100, message = "设备所在地点长度必须介于 0 和 100 之间")
    public String getDeviceAddr() {
        return deviceAddr;
    }

    public void setDeviceAddr(String deviceAddr) {
        this.deviceAddr = deviceAddr;
    }

    @Length(min = 0, max = 20, message = "经度长度必须介于 0 和 20 之间")
    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    @Length(min = 0, max = 20, message = "纬度长度必须介于 0 和 20 之间")
    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getReportTime() {
        return reportTime;
    }

    public void setReportTime(Date reportTime) {
        this.reportTime = reportTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getArrivalTime() {
        return arrivalTime;
    }

    public void setArrivalTime(Date arrivalTime) {
        this.arrivalTime = arrivalTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getCompletionTime() {
        return completionTime;
    }

    public void setCompletionTime(Date completionTime) {
        this.completionTime = completionTime;
    }

    @Length(min = 0, max = 1, message = "是否困人长度必须介于 0 和 1 之间")
    public String getTrappedPeople() {
        return trappedPeople;
    }

    public void setTrappedPeople(String trappedPeople) {
        this.trappedPeople = trappedPeople;
    }

    @Length(min = 0, max = 10, message = "困人时间（分钟）长度必须介于 0 和 10 之间")
    public String getTrappedTime() {
        return trappedTime;
    }

    public void setTrappedTime(String trappedTime) {
        this.trappedTime = trappedTime;
    }

    @Length(min = 0, max = 1, message = "脱困情况长度必须介于 0 和 1 之间")
    public String getOutDifficulty() {
        return outDifficulty;
    }

    public void setOutDifficulty(String outDifficulty) {
        this.outDifficulty = outDifficulty;
    }

    @Length(min = 0, max = 10, message = "被困人数长度必须介于 0 和 10 之间")
    public String getTrappedNumber() {
        return trappedNumber;
    }

    public void setTrappedNumber(String trappedNumber) {
        this.trappedNumber = trappedNumber;
    }

    @Length(min = 0, max = 500, message = "故障报告内容长度必须介于 0 和 500 之间")
    public String getFailureReportContent() {
        return failureReportContent;
    }

    public void setFailureReportContent(String failureReportContent) {
        this.failureReportContent = failureReportContent;
    }

    @Length(min = 0, max = 500, message = "故障实际情况长度必须介于 0 和 500 之间")
    public String getActualFaultCondition() {
        return actualFaultCondition;
    }

    public void setActualFaultCondition(String actualFaultCondition) {
        this.actualFaultCondition = actualFaultCondition;
    }

    @Length(min = 0, max = 20, message = "故障状态长度必须介于 0 和 20 之间")
    public String getFailureStatus() {
        return failureStatus;
    }

    public void setFailureStatus(String failureStatus) {
        this.failureStatus = failureStatus;
    }

    @Length(min = 0, max = 200, message = "故障状态补充说明长度必须介于 0 和 200 之间")
    public String getFailureStatusRemark() {
        return failureStatusRemark;
    }

    public void setFailureStatusRemark(String failureStatusRemark) {
        this.failureStatusRemark = failureStatusRemark;
    }

    @Length(min = 0, max = 200, message = "故障原因长度必须介于 0 和 200 之间")
    public String getFailureReason() {
        return failureReason;
    }

    public void setFailureReason(String failureReason) {
        this.failureReason = failureReason;
    }

    @Length(min = 0, max = 20, message = "处理状态长度必须介于 0 和 20 之间")
    public String getProcessStatus() {
        return processStatus;
    }

    public void setProcessStatus(String processStatus) {
        this.processStatus = processStatus;
    }

    @Length(min = 0, max = 200, message = "故障状态补充说明长度必须介于 0 和 200 之间")
    public String getProcessStatusRemark() {
        return processStatusRemark;
    }

    public void setProcessStatusRemark(String processStatusRemark) {
        this.processStatusRemark = processStatusRemark;
    }

    @Length(min = 0, max = 10, message = "状态长度必须介于 0 和 10 之间")
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Length(min = 0, max = 20, message = "创建人长度必须介于 0 和 20 之间")
    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    @Length(min = 0, max = 20, message = "更新人长度必须介于 0 和 20 之间")
    public String getLastUpdateBy() {
        return lastUpdateBy;
    }

    public void setLastUpdateBy(String lastUpdateBy) {
        this.lastUpdateBy = lastUpdateBy;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getLastUpdateDate() {
        return lastUpdateDate;
    }

    public void setLastUpdateDate(Date lastUpdateDate) {
        this.lastUpdateDate = lastUpdateDate;
    }

    @Length(min = 0, max = 200, message = "备注长度必须介于 0 和 200 之间")
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getSourceNo() {
        return sourceNo;
    }

    public void setSourceNo(String sourceNo) {
        this.sourceNo = sourceNo;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public String getSafetyOfficerPhoto() {
        return safetyOfficerPhoto;
    }

    public void setSafetyOfficerPhoto(String safetyOfficerPhoto) {
        this.safetyOfficerPhoto = safetyOfficerPhoto;
    }

    public String getMaintenanceStaff1() {
        return maintenanceStaff1;
    }

    public void setMaintenanceStaff1(String maintenanceStaff1) {
        this.maintenanceStaff1 = maintenanceStaff1;
    }

    public String getMaintenanceStaff2() {
        return maintenanceStaff2;
    }

    public void setMaintenanceStaff2(String maintenanceStaff2) {
        this.maintenanceStaff2 = maintenanceStaff2;
    }

    public String getMaintenanceStaff1Photo() {
        return maintenanceStaff1Photo;
    }

    public void setMaintenanceStaff1Photo(String maintenanceStaff1Photo) {
        this.maintenanceStaff1Photo = maintenanceStaff1Photo;
    }

    public String getMaintenanceStaff2Photo() {
        return maintenanceStaff2Photo;
    }

    public void setMaintenanceStaff2Photo(String maintenanceStaff2Photo) {
        this.maintenanceStaff2Photo = maintenanceStaff2Photo;
    }

    public List<MaintenanceStaff> getStaffList() {
        return staffList;
    }

    public void setStaffList(List<MaintenanceStaff> staffList) {
        this.staffList = staffList;
    }

    public String getUseUnitName() {
        return useUnitName;
    }

    public void setUseUnitName(String useUnitName) {
        this.useUnitName = useUnitName;
    }

    public String getFailureDeal() {
        return failureDeal;
    }

    public void setFailureDeal(String failureDeal) {
        this.failureDeal = failureDeal;
    }

    public String getFailureDesc() {
        return failureDesc;
    }

    public void setFailureDesc(String failureDesc) {
        this.failureDesc = failureDesc;
    }

    public List getFailureStatusList() {
        return failureStatusList;
    }

    public void setFailureStatusList(List failureStatusList) {
        this.failureStatusList = failureStatusList;
    }

    public List getProcessStatusList() {
        return processStatusList;
    }

    public void setProcessStatusList(List processStatusList) {
        this.processStatusList = processStatusList;
    }

    @Override
    public String getDbName() {
        return dbName;
    }

    public void setDbName(String dbName) {
        this.dbName = dbName;
    }

    public String getMaintenanceStaff1Name() {
        return maintenanceStaff1Name;
    }

    public void setMaintenanceStaff1Name(String maintenanceStaff1Name) {
        this.maintenanceStaff1Name = maintenanceStaff1Name;
    }

    public String getMaintenanceStaff2Name() {
        return maintenanceStaff2Name;
    }

    public void setMaintenanceStaff2Name(String maintenanceStaff2Name) {
        this.maintenanceStaff2Name = maintenanceStaff2Name;
    }
}